import React, { Component } from 'react'
import { Route } from 'react-router-dom'
import { Redirect } from 'react-router-dom/cjs/react-router-dom.min'
import { getStorage } from 'utils/storage'


// 用来判断如果没有token的话，不会进入主页
export default class AuthRoute extends Component {
  render() {
    const { component: Component, ...rest } = this.props
    // ...rest拿到其他的剩余的参数，因为只需要对component做处理
    return (
      <Route
        {...rest}
        // react-router-dom中对component的处理
        render={(props) => {
          // console.log(props)
          // 判断token是否存在，如果存在的话，跳转到指定页面，否则重定向到login
          const token = getStorage()
          if (token) return <Component {...props} />
          return (
            <Redirect
              to={{
                pathname: '/login',
                state: {
                  fromPath: props.location.pathname,
                },
              }}
            />
          )
        }}
      />
    )
  }
}
